home *** CD-ROM | disk | FTP | other *** search
/ The Fatted Calf / The Fatted Calf.iso / Modules / BackSpaceModules / Source / MazeView / MazeView.h < prev    next >
Text File  |  1994-01-12  |  2KB  |  108 lines

  1. #import <appkit/appkit.h>
  2. #import "Thinker.h"
  3.  
  4. #define ITERATIONS 20000/* max # of iterations before restarting */
  5. #define PANELTIME 333   /* ms delay between *panel* animation frames */
  6. #define MINCELLSIZE 2   /* Make sure cell size gets no smaller than... */
  7. #define MAXDELAY 1000   /* no more than this many ms between frames */
  8. #define RECTBUFSIZE 32  /* Number of squares of one color to draw at once */
  9. #define MAXCOLS (1600/MINCELLSIZE+2) /* full screen of smallest cells (x) */
  10. #define MAXROWS (1280/MINCELLSIZE+2) /* (y) */
  11.  
  12. typedef struct _mazecell {
  13.     int next;
  14.     int bdir;
  15.     unsigned int eastwall : 1;
  16.     unsigned int northwall : 1;
  17.     unsigned int westwall : 1;
  18.     unsigned int southwall : 1;
  19. } mazecell;
  20.  
  21. @interface MazeView:View
  22. {
  23.     mazecell *Grid;
  24.     
  25.     BStimeval lasttime;
  26.  
  27.     int icur;
  28.     int dcur;
  29.     int ncols, nrows;
  30.     int countDown;
  31.     int ifirst;
  32.  
  33.     int cellSize;
  34.     int wallSize;
  35.     int pathSize;
  36.     int gapSize;
  37.  
  38.     int xoffset, yoffset;
  39.  
  40.     BOOL randomColor;
  41.     NXColor wallColor;
  42.     NXColor curWallColor;
  43.     NXColor pathColor;
  44.     NXColor curPathColor;
  45.  
  46.     int delay;
  47.     NXRect wallRectList[RECTBUFSIZE];
  48.     int wallRectListSize;
  49.     NXRect pathRectList[RECTBUFSIZE];
  50.     int pathRectListSize;
  51.     NXRect eraseRectList[RECTBUFSIZE];
  52.     int eraseRectListSize;
  53.  
  54.     id panelSpeedSlider;
  55.     id randomColorSwitch;
  56.     id sharedInspectorPanel;
  57.     id panelWallColorWell;
  58.     id panelPathColorWell;
  59.     id panelMazeView;
  60.     id panelCreditsView;
  61. }
  62.  
  63. - oneStep;
  64. - drawForward:(int)index;
  65. - drawBack:(int)index;
  66. - drawSelf:(const NXRect *)rects :(int)rectCount;
  67. - (const char *) windowTitle;
  68. - initFrame:(const NXRect *)frameRect;
  69. - free;
  70. - getMazeDefaults;
  71. - sizeTo:(NXCoord)width :(NXCoord)height;
  72. - initMaze;
  73. - computeMaze;
  74. - firstStep;
  75. - clearMaze;
  76.  
  77. - addWallRectOrigin:(int) x :(int) y size:(int)w :(int) h;
  78. - flushWallRects;
  79. - addPathRectOrigin:(int) x :(int) y size:(int)w :(int) h;
  80. - flushPathRects;
  81. - addEraseRectOrigin:(int) x :(int) y size:(int)w :(int) h;
  82. - flushEraseRects;
  83. - flushDrawing;
  84. - updateViews;
  85.  
  86. - inspector:sender;
  87. - inspectorInstalled;
  88. - doSpeedSlider:sender;
  89. - doRandomColorSwitch:sender;
  90. - takeWallColorFrom:sender;
  91. - takePathColorFrom:sender;
  92.  
  93. - showCredits:sender;
  94. - hideCredits:sender;
  95.  
  96. - doShowCredits:sender;
  97. - doHideCredits:sender;
  98.  
  99. @end
  100.  
  101. @interface StaticMazeView:MazeView
  102. {
  103. }
  104. - setWallColor:(NXColor)wc pathColor:(NXColor)pc;
  105.  
  106. @end
  107.  
  108.